MEMS-based proximity sensor device and method

ABSTRACT

A portable proximity device and method of operation thereof. The method for proximity detection implemented on a portable device can include determining an initial perturbation data, a tracking point data, and a stable position data with a physical sensor of the portable device. The initial perturbation data can include previous state data and current state data. The tracking point data can include one or more track data. An action to be performed can be determined, by a processor within the portable device, based on the initial perturbation data, the tracking point data, and the stable position data. The portable proximity device can include a physical sensor and a processor configured to perform these steps.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to and incorporates byreference, for all purposes, the following patent application: U.S.Provisional App. 61/829,115, filed May 30, 2013.

BACKGROUND OF THE INVENTION

The present invention is directed to applications of integrated circuit(IC) and MEMS (Micro-Electro-Mechanical-Systems) devices. Morespecifically, embodiments of the invention provide methods and devicesfor integrated MEMS sensor devices, which can be implemented in mobilephones, tablets, hand-held computers, and the like. Merely by way ofexample, the MEMS devices can include at least an accelerometer, agyroscope, an inertial sensor, a magnetic field sensor, and others. Butit will be recognized that the invention has a much broader range ofapplicability.

Research and development in integrated microelectronics have continuedto produce astounding progress in CMOS and MEMS. CMOS technology hasbecome the predominant fabrication technology for integrated circuits(IC). MEMS, however, continues to rely upon conventional processtechnologies. In layman's terms, microelectronic ICs are the “brains” ofan integrated device which provides decision-making capabilities,whereas MEMS are the “eyes” and “arms” that provide the ability to senseand control the environment. Some examples of the widespread applicationof these technologies are the switches in radio frequency (RF) antennasystems, such as those in the iPhone™ device by Apple, Inc. ofCupertino, Calif., and the Blackberry™ phone by Research In MotionLimited of Waterloo, Ontario, Canada, and accelerometers insensor-equipped game devices, such as those in the Wii™ controllermanufactured by Nintendo Company Limited of Japan. Though they are notalways easily identifiable, these technologies are becoming ever moreprevalent in society every day.

Beyond consumer electronics, use of IC and MEMS has limitlessapplications through modular measurement devices such as accelerometers,gyroscopes, actuators, and sensors. In conventional vehicles,accelerometers and gyroscopes are used to deploy airbags and triggerdynamic stability control functions, respectively. MEMS gyroscopes canalso be used for image stabilization systems in video and still cameras,and automatic steering systems in airplanes and torpedoes. BiologicalMEMS (Bio-MEMS) implement biosensors and chemical sensors forLab-On-Chip applications, which integrate one or more laboratoryfunctions on a single millimeter-sized chip only. Other applicationsinclude Internet and telephone networks, security and financialapplications, and health care and medical systems. As describedpreviously, ICs and MEMS can be used to practically engage in varioustype of environmental interaction.

Although highly successful, ICs and in particular MEMS still havelimitations. Similar to IC development, MEMS development, which focuseson increasing performance, reducing size, and decreasing cost, continuesto be challenging. Additionally, applications of MEMS often requireincreasingly complex microsystems that desire greater computationalpower. Unfortunately, such applications generally do not exist. Theseand other limitations of conventional MEMS and ICs may be furtherdescribed throughout the present specification and more particularlybelow.

From the above, it is seen that techniques for improving operation ofintegrated circuit devices and MEMS are highly desired.

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to applications of integrated circuit(IC) and MEMS (Micro-Electro-Mechanical-Systems) devices. Morespecifically, embodiments of the invention provide methods andstructures for integrated MEMS sensor devices, which can be implementedin mobile phones, tablets, hand-held computers, and the like. Merely byway of example, the MEMS devices can include at least an accelerometer,a gyroscope, an inertial sensor, and magnetic field sensor, and others.But it will be recognized that the invention has a much broader range ofapplicability.

The present invention includes a MEMS-based proximity sensor device andmethods of operation. The following describes an embodiment of thevarious steps in a method of operating the MEMS-based proximity sensor.The method can include using a virtual proximity sensor and a servicedaemon as a substitution for a proximity sensor hardware IC during aphone call. In an example, this virtual proximity sensor can be used forturning a mobile phone's display “On” or “Off,” reducing a back-light,or the like. Other electronic devices, touchscreen devices, and thelike, can be used as well. In an embodiment, the screen backlight of amobile phone will be turned off when a user gets close with the headsetduring a phone call. On the other hand, the screen will be turned onimmediately after the user gets far away, and the screen will be turnedoff when the user's ear gets close.

In an embodiment, the present invention includes a portable proximitydevice and method of operation thereof. The method for proximitydetection implemented on a portable device can include determining aninitial perturbation data, a tracking point data, and a stable positiondata with a physical sensor of the portable device. The initialperturbation data can include previous state data and current statedata. The tracking point data can include one or more track data. Anaction to be performed can be determined, by a processor within theportable device, based on the initial perturbation data, the trackingpoint data, and the stable position data. The portable proximity devicecan include a physical sensor and a processor configured to performthese steps.

Many benefits are achieved by the way of the present invention overconventional techniques. The present invention includes a MEMS-basedproximity sensor device and methods of operation. The method can includeusing a virtual proximity sensor and a service daemon as a substitutionfor a proximity sensor hardware IC during a phone call. In an example,this virtual proximity sensor can be used for turning a mobile phone'sdisplay “On” or “Off”. Other electronic devices, touchscreen devices,and the like, can be used as well. In an embodiment, the screenbacklight of a mobile phone will be turned off when a user gets closewith the headset during a phone call. On the other hand, the screen willbe turned on immediately after the user gets far away, and the screenwill be turned off when the user's ear gets close.

In various embodiments, one or more profiles of movement of the mobiledevice may be pre-determined. One such example of a profile may includea mobile device, or the like being moved in an arc or curve from ahorizontal or vertical position, upwards, and being maintained in astable upwards position. Such a profile may be based upon a user pickingup their phone, moving the phone towards their head, and then talkingwith the phone next to their head. In various embodiments, subsequentmovements of the mobile device, determined via MEMS sensors, or thelike, are compared to the one or more profiles. In some embodiments,when there is an approximate match, a status flag, or the like may beset. Subsequently an operating system process, e.g. daemon, process, mayperform an action in response to the indicator, e.g. turn off a display,hang-up a telephone call, or the like.

Various additional objects, features and advantages of the presentinvention can be more fully appreciated with reference to the detaileddescription and accompanying drawings that follow.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to more fully understand the present invention, reference ismade to the accompanying drawings. Understanding that these drawings arenot to be considered limitations in the scope of the invention, thepresently described embodiments and the presently understood best modeof the invention are described with additional detail through use of theaccompanying drawings in which:

FIG. 1 illustrates a simplified formula for initial movement detectionaccording to an embodiment of the present invention.

FIG. 2 illustrates a simplified formula for tracking point detectionaccording to an embodiment of the present invention.

FIG. 3 illustrates a simplified formula for sensor data checkingaccording to an embodiment of the present invention.

FIG. 4 illustrates a simplified formula for sensor data checkingaccording to an embodiment of the present invention.

FIG. 5 illustrates a simplified formula for sensor data checkingaccording to an embodiment of the present invention.

FIG. 6 illustrates a simplified flow diagram of a method for operating aMEMS proximity sensor device according to an embodiment of the presentinvention.

FIG. 7 illustrates a simplified block diagram of a MEMS proximity sensorsystem according to an embodiment of the present invention.

FIG. 8 illustrates a simplified functional block diagram of variousembodiments of the present invention.

FIG. 9 illustrates a simplified block diagram of a MEMS proximity sensorsystem according to an embodiment of the present invention.

FIG. 10 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention.

FIG. 11 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention.

FIG. 12 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention.

FIG. 13 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is directed to applications of integrated circuit(IC) and MEMS (Micro-Electro-Mechanical-Systems) devices. Morespecifically, embodiments of the invention provide methods andstructures for integrated MEMS sensor devices, which can be implementedin mobile phones, tablets, hand-held computers, magnetic field sensor,and the like. Merely by way of example, the MEMS devices can include atleast an accelerometer, a gyroscope, an inertial sensor, and others. Butit will be recognized that the invention has a much broader range ofapplicability.

Proximity sensors are commonly used in smartphone devices, especiallythose having touchscreens. A primary function of the proximity sensor insuch a device is to disable accidental touch events. The most commonscenario employing the proximity sensor is the ear coming in contactwith the screen and generating touch events while the user is on a call.

The present invention includes a MEMS-based proximity sensor device andmethods of operation. The following describes an embodiment of thevarious steps in a method of operating the MEMS-based proximity sensor.The method can include using a virtual proximity sensor and a servicedaemon as a substitution for a proximity sensor hardware IC during aphone call. In an example, this virtual proximity sensor can be used forturning a mobile phone's display “On” or “Off”. Other electronicdevices, touchscreen devices, and the like, can be used as well. In anembodiment, the screen backlight of a mobile phone will be turned offwhen a user gets close with the headset during a phone call. On theother hand, the screen will be turned on immediately after the user getsfar away, and the screen will be turned off when the user's ear getsclose.

In a specific embodiment, the MEMS-based proximity sensor device caninclude an Accelerometer-based proximity sensor and the method ofoperation can include utilizing the accelerometer sensor data to detectthe user's gesture and movement on the headset for two phases, and get aproximity event only when the proximity changes (either NEAR to FAR orFAR to NEAR). The proximity value related to these proximity changes canbe calculated by a service daemon using accelerometer data.

Step 1: Detect the Movement in the Very Beginning—

Detect the gesture from anywhere to the vicinity of the ear, which takesX, Y, and Z axis values into the gesture detection model. And we comparethe difference of X, Y, and Z axis values (“CurrentX”, “CurrentY”, and“CurrentZ”) with its initial value (“PreviousX”, “PreviousY”, and“PreviousZ”) before moving and the value immediately caught at the firstmovement. If we sense that the device is starting to move, then wesample a two or more of points of (x, y, z) axis values during themoving track from anywhere getting close to the vicinity of the ear(i.e. from the front of the human body to getting close to the ear). Thetwo or more of points can include any integer greater than 2 as anexample. In a specific embodiment, the two or more points can include 5consecutive points. Those of ordinary skill in the art will recognizevarious amounts of points depending on specific embodiments andapplications.

FIG. 1 illustrates a simplified formula of initial movement detectionaccording to an embodiment of the present invention. The “SENSITIVITY”value is the resolution of the MEMS device, such as an accelerometer,magnetic field sensor, gyro sensor, and the like. “xShakeParm”,“yShakeParm”, and “zShakeParm” are the designated parameters to theshake detection in the first beginning.

The device is assumed to start moving when passing the criteria that theabsolute value of the difference of the “CurrentX” and “PreviousX” isbigger than a specific ratio, i.e., “SENSITIVITY”/“xShakeParm”. Invarious embodiments, the passing criteria can be based on the differenceof X, Y, or Z values, or combinations thereof. Of course, othervariations, modifications, and alternative implementations can be used.

Step 2: Detect the Tracking Points from Anywhere to the Vicinity of theEar—

Following success in Step 1, then the two or more consecutive points of(x, y, z) axis data are sampled to determine the device moving anywhereto the vicinity of the ear. The difference of the first point(“TrackData[1^(st)]”) and the last point (“TrackData[last]”) out of thetwo or more sampling points during the track will be compared. Invarious embodiments, the estimation should pass on any of the X, Y, or Zaxes, or combinations thereof (e.g. X & Y, Y & Z, X & Z, or X, Y, & Z).In a specific embodiment, the estimation should pass both on the X and Zaxis ([Xaxis], [Zaxis]).

FIG. 2 illustrates a simplified formula for tracking point detectionaccording to an embodiment of the present invention. This formuladescribes several parameters. The “SENSITIVITY” is the resolution of thedevice IC. “xMoveParm”, “yMoveParm”, and “zMoveParm” are parametersbased on movement criteria. Here, it is assumed that the device actuallymoves when passing the criteria for step 1 on the X, Y, and Z axis,which leads to the sampling of the two or more consecutive points forthe step 2 data checking. If this data check is passed on X, Y, and Z(or any combination of checks on the X, Y, and Z axes), then step 3 isexecuted to verify the final position of the device.

Step 3: Check the Stable Position of the Sensor Data—

During user movement, the position of the sensor data is checked byusing the last point kept by step 2. FIGS. 3-5 illustrate simplifiedformulas for the sensor data check according to an embodiment of thepresent invention. The last point of the movement track is compared witha heuristic boundary for X, Y, Z to obtain the best proximity status.The specific parameters for the stable position check phase of thesensor data include “XPositionParm”, “YPositionParm”, and“ZPositionParm”. This checking step can include three steps to check thedata for each axis (X, Y, Z), shown in FIGS. 3, 4, and 5, respectively.

The last point of X, Y, Z sensor data are assumed to be located near arange within a vicinity of the ear when passing the three criteria withthe designed parameters and offset. Upon passing, the service daemonwill immediately switch the proximity value at the computed proximitysensor driver. The system will turn on or off according to the proximityvalue, which is either NEAR to FAR or FAR to NEAR.

In various embodiments, when the points tracked in steps 1 and 2resemble an arc or a curve from an initial position upwards, this mayindicate that the user picking up a mobile device implementingembodiments of the present invention. Additionally, when the final,stable position of the device is in an upright and/or tilted positionwith respect to gravity in step 3, this may indicate that the user isholding the mobile device next to their head. Accordingly, in variousembodiments, based upon the tracking points and the final/stableposition, it can be inferred that certain combinations of movementsrepresent the user answering a telephone call on their mobile device,(e.g. picking up a mobile device and positioning the mobile device nextto their face). In such combinations of movements, embodiments of thepresent invention may indicate proximity of the mobile device next tothe user's face, e.g. NEAR, which leads to the mobile deviceswitching-off the display.

In various embodiments, while the mobile device is in approximately thestable position, the mobile device may maintain the NEAR proximityvalue, and the display may be maintained off, low backlight, backlightoff, or the like. Subsequently, when the mobile device is moved awayfrom the stable position, by monitoring tracking points, as discussedabove, embodiments of the present invention may switch the proximityvalue to FAR. Accordingly, the activity of the display may be restored.

In some embodiments, different MEMS sensors may be used to determine themotion data. For example, in one embodiment, 3-access accelerometers maybe used; in another example, gyroscopes may be used; in still otherembodiments, sensors such as pressure sensors or magnetometers may beused.

FIG. 6 illustrates a simplified flow diagram of a method for operating aMEMS proximity sensor device according to an embodiment of the presentinvention. This flow diagram represents a specific embodiment of amethod implementing the steps 1-3 described previously for FIGS. 1-5. Inthis case, the initial movement check of step 1 and the tracking pointdetection of step 2 are directed to a combination of checks on the X andZ axis. Also, the method is shown to sample of n consecutive sensor dataduring the moving track, where n is an integer greater than zero.

In an embodiment, the present invention includes a portable proximitydevice and method of operation thereof. This related device and methodcan be referred to as a “CallSense” device and method or “CallSense1.0”. The method for proximity detection implemented on a portabledevice can include determining an initial perturbation data, a trackingpoint data, and a stable position data with a physical sensor of theportable device. The initial perturbation data can include previousstate data and current state data. The tracking point data can includeone or more track data. An action to be performed can be determined, bya processor within the portable device, based on the initialperturbation data, the tracking point data, and the stable positiondata.

In a specific embodiment, the method can also include comparing thedifference between the previous state data and the current state data toone or more first threshold values. Each of the one or more firstthreshold values can include a ratio between a sensitivity parameter anda shake detection parameter, as described for FIGS. 1 and 2. The initialperturbation data can include X-axis perturbation data and Z-axisperturbation data, as shown in FIG. 6. A Y-axis perturbation data canalso be included. In this case, the one or more first threshold valuesincludes an X-axis first threshold value and a Z-axis first thresholdvalue. The X-axis first threshold value can include a ratio between thesensitivity parameter and an X-axis shake detection parameter. TheZ-axis first threshold can include a ratio between the sensitivityparameter and a Z-axis shake detection parameter. Additionally, a Y-axisfirst threshold including a ration between the sensitivity parameter anda Y-axis shake detection parameter can be implemented. Of course, therecan be other variations, modifications, and alternatives.

In a specific embodiment, the method step of determining the trackingpoint data includes sampling two or more consecutive points in (x, y, z)axis data. The difference between the first point in (x, y, z) axis dataand the last point in (x, y, z) axis data of the consecutive points canbe compared to one or more second threshold values. The one or moresecond threshold values can include a ratio between a sensitivityparameter and a movement parameter. The one or more second thresholdvalues can include an X-axis second threshold value and a Z-axis secondthreshold value. The X-axis second threshold value can include a ratiobetween the sensitivity parameter and an X-axis movement parameter. TheZ-axis second threshold can include a ratio between the sensitivityparameter and a Z-axis movement parameter. A Y-axis second threshold canalso be implemented, where the Y-axis second threshold includes a ratiobetween the sensitivity parameter and a Y-axis movement parameter. In aspecific embodiment, the thresholds sued for the initial perturbationdata and the tracking point data can include an combination of the X, Y,and Z first or second threshold values.

Furthermore, the last point in (x, y, z) data from the one or more trackdata can be compared to one or more third threshold values and one ormore fourth threshold values. The one or more third threshold values caninclude a ratio between the sensitivity parameter and a positionparameter. For example, the one or more third threshold values caninclude an X-axis, Y-axis, and Z-axis third threshold values. Each ofthese third threshold values can include a ratio between the sensitivityparameter and an X-axis, Y-axis, or Z-axis position parameter,respectively. Similarly, the one or more fourth threshold values caninclude an X-axis, Y-axis, and Z-axis fourth threshold values, whereeach of these value can include a ratio between the sum of thesensitivity parameter and an X-offset, Y-offset, or a Z-offset value anda Z-axis positive position parameter, respectively. The method caninclude determining an action to perform based on whether the initialperturbation data exceeds one or more first thresholds, whether thetracking point data exceeds one or more second thresholds, and whetherthe stable position data exceeds one or more third and fourththresholds. Of course, there can be other variations, modifications, andalternatives.

The portable proximity device can include a physical sensor and aprocessor configured to perform these steps. The portable device caninclude a physical sensor configured to determine the initialperturbation data, the tracking point data, and the stable positiondata. The physical sensor can include an accelerometer, a gyro sensor, amagnetic field sensor, or other MEMS physical sensor, or combinationthereof. The physical sensor can be coupled to a processor, which can beprogrammed to determine an action to perform based on these data andwhether they exceed the thresholds described previously.

FIG. 7 illustrates a simplified block diagram of a MEMS proximity sensorsystem according to an embodiment of the present invention. This diagramshows the interaction between the MEMS hardware and software interfaceof a portable device operating on an Android operating system. Thesensors are configured through the Linux device driver and controlled bythe service daemon. The sensors operate communicate through the AndroidHAL (Hardware Abstraction Layer) to the Android Native Interface of theAndroid framework. Other frameworks and interfaces can be used invarious embodiments of a portable device implementing a MEMS proximitysensor system.

FIG. 8 illustrates a functional block diagram of various embodiments ofthe present invention. In FIG. 8, a computing device 900 typicallyincludes an applications processor 910, memory 920, a touch screendisplay 930 and driver 940, an image acquisition device 950, audioinput/output devices 960, and the like. Additional communications fromand to computing device are typically provided by via a wired interface970, a GPS/Wi-Fi/Bluetooth interface 980, RF interfaces 990 and driver1000, and the like. Also included in various embodiments are physicalsensors 1010.

In various embodiments, computing device 900 may be a hand-heldcomputing device (e.g. Apple iPad, Apple iTouch, Dell Mini slate, LenovoSkylight/IdeaPad, Asus EEE series, Microsoft Courier, Notion Ink Adam),a portable telephone (e.g. Apple iPhone, Motorola Droid, Google NexusOne, HTC Incredible/EVO 4G, Palm Pre series, Nokia N900), a portablecomputer (e.g. netbook, laptop), a media player (e.g. Microsoft Zune,Apple iPod), a reading device (e.g. Amazon Kindle, Barnes and NobleNook), or the like.

Typically, computing device 900 may include one or more processors 910.Such processors 910 may also be termed application processors, and mayinclude a processor core, a video/graphics core, and other cores.Processors 910 may be a processor from Apple (A4), Intel (Atom), NVidia(Tegra 2), Marvell (Armada), Qualcomm (Snapdragon), Samsung, TI (OMAP),or the like. In various embodiments, the processor core may be an Intelprocessor, an ARM Holdings processor such as the Cortex-A, -M, -R or ARMseries processors, or the like. Further, in various embodiments, thevideo/graphics core may be an Imagination Technologies processorPowerVR-SGX, -MBX, -VGX graphics, an Nvidia graphics processor (e.g.GeForce), or the like. Other processing capability may include audioprocessors, interface controllers, and the like. It is contemplated thatother existing and/or later-developed processors may be used in variousembodiments of the present invention.

In various embodiments, memory 920 may include different types of memory(including memory controllers), such as flash memory (e.g. NOR, NAND),pseudo SRAM, DDR SDRAM, or the like. Memory 920 may be fixed withincomputing device 900 or removable (e.g. SD, SDHC, MMC, MINI SD, MICROSD, CF, SIM). The above are examples of computer readable tangible mediathat may be used to store embodiments of the present invention, such ascomputer-executable software code (e.g. firmware, application programs),application data, operating system data or the like. It is contemplatedthat other existing and/or later-developed memory and memory technologymay be used in various embodiments of the present invention.

In various embodiments, touch screen display 930 and driver 940 may bebased upon a variety of later-developed or current touch screentechnology including resistive displays, capacitive displays, opticalsensor displays, electromagnetic resonance, or the like. Additionally,touch screen display 930 may include single touch or multiple-touchsensing capability. Any later-developed or conventional output displaytechnology may be used for the output display, such as TFT-LCD, OLED,Plasma, trans-reflective (Pixel Qi), electronic ink (e.g.electrophoretic, electrowetting, interferometric modulating). In variousembodiments, the resolution of such displays and the resolution of suchtouch sensors may be set based upon engineering or non-engineeringfactors (e.g. sales, marketing). In some embodiments of the presentinvention, a display output port, such as an HDMI-based port orDVI-based port may also be included.

In some embodiments of the present invention, image capture device 950may include a sensor, driver, lens and the like. The sensor may be basedupon any later-developed or convention sensor technology, such as CMOS,CCD, or the like. In various embodiments of the present invention, imagerecognition software programs are provided to process the image data.For example, such software may provide functionality such as: facialrecognition, head tracking, camera parameter control, or the like.

In various embodiments, audio input/output 960 may include conventionalmicrophone(s)/speakers. In some embodiments of the present invention,three-wire or four-wire audio connector ports are included to enable theuser to use an external audio device such as external speakers,headphones or combination headphone/microphones. In various embodiments,voice processing and/or recognition software may be provided toapplications processor 910 to enable the user to operate computingdevice 900 by stating voice commands. Additionally, a speech engine maybe provided in various embodiments to enable computing device 900 toprovide audio status messages, audio response messages, or the like.

In various embodiments, wired interface 970 may be used to provide datatransfers between computing device 900 and an external source, such as acomputer, a remote server, a storage network, another computing device900, or the like. Such data may include application data, operatingsystem data, firmware, or the like. Embodiments may include anylater-developed or conventional physical interface/protocol, such as:USB 2.0, 3.0, micro USB, mini USB, Firewire, Apple iPod connector,Ethernet, POTS, or the like. Additionally, software that enablescommunications over such networks is typically provided.

In various embodiments, a wireless interface 980 may also be provided toprovide wireless data transfers between computing device 900 andexternal sources, such as computers, storage networks, headphones,microphones, cameras, or the like. As illustrated in FIG. 8, wirelessprotocols may include Wi-Fi (e.g. IEEE 802.11a/b/g/n, WiMax), Bluetooth,IR and the like.

GPS receiving capability may also be included in various embodiments ofthe present invention, however is not required. As illustrated in FIG.8, GPS functionality is included as part of wireless interface 980merely for sake of convenience, although in implementation, suchfunctionality is currently performed by circuitry that is distinct fromthe Wi-Fi circuitry and distinct from the Bluetooth circuitry.

Additional wireless communications may be provided via RF interfaces 990and drivers 1000 in various embodiments. In various embodiments, RFinterfaces 990 may support any future-developed or conventional radiofrequency communications protocol, such as CDMA-based protocols (e.g.WCDMA), GSM-based protocols, HSUPA-based protocols, or the like. In theembodiments illustrated, driver 1000 is illustrated as being distinctfrom applications processor 910. However, in some embodiments, thesefunctionalities are provided upon a single IC package, for example theMarvel PXA330 processor, and the like. It is contemplated that someembodiments of computing device 900 need not include the RFfunctionality provided by RF interface 990 and driver 1000.

FIG. 8 also illustrates computing device 900 to include physical sensors1010. In various embodiments of the present invention, physical sensors1010 can be single axis or multi-axis Micro-Electro-Mechanical Systems(MEMS) based devices being developed by M-cube, the assignee of thepresent patent application. Physical sensors 1010 can includeaccelerometers, gyroscopes, pressure sensors, magnetic field sensors,bio sensors, and the like. In other embodiments of the presentinvention, conventional physical sensors 1010 from Bosch,STMicroelectronics, Analog Devices, Kionix or the like may be used.

In various embodiments, any number of future developed or currentoperating systems may be supported, such as iPhone OS (e.g. iOS),WindowsMobile (e.g. 7), Google Android (e.g. 2.2), Symbian, or the like.In various embodiments of the present invention, the operating systemmay be a multi-threaded multi-tasking operating system. Accordingly,inputs and/or outputs from and to touch screen display 930 and driver940 and inputs/or outputs to physical sensors 1010 may be processed inparallel processing threads. In other embodiments, such events oroutputs may be processed serially, or the like. Inputs and outputs fromother functional may also be processed in parallel or serially, in otherembodiments of the present invention, such as image acquisition device950 and physical sensors 1010.

FIG. 8 is representative of one computing device 900 capable ofembodying the present invention. It will be readily apparent to one ofordinary skill in the art that many other hardware and softwareconfigurations are suitable for use with the present invention.Embodiments of the present invention may include at least some but neednot include all of the functional blocks illustrated in FIG. 8. Forexample, in various embodiments, computing device 900 may lack imageacquisition unit 950, or RF interface 990 and/or driver 1000, or GPScapability, or the like. Additional functions may also be added tovarious embodiments of computing device 900, such as a physicalkeyboard, an additional image acquisition device, a trackball ortrackpad, a joystick, or the like. Further, it should be understood thatmultiple functional blocks may be embodied into a single physicalpackage or device, and various functional blocks may be divided and beperformed among separate physical packages or devices.

In an embodiment, the present invention relates to a Virtual ProximitySensor Algorithm, which is a solution for replacing the proximity sensorhardware. This algorithm applied as a proximity sensor system and methodof operating therefor can be referred to as “CallSense 2.0”. Accordingto an embodiment, there are two highlights about this algorithm. First,the algorithm exhibits high frequency and high resolution (14 bitresolution and +/−8 g range for the sensor with software 50 Hz samplingrate) collection of accelerometer data for tracing the pick-up/get-awaygesture of the handheld devices. Second, the algorithm takes theaccelerometer and touch panel proximity signal into consideration as afinal result of proximity status, using the Close/Far Away status ashardware proximity sensor's function.

FIG. 9 illustrates a simplified block diagram of a MEMS proximity sensorsystem according to an embodiment of the present invention. This diagramshows the interaction between a “CallSense Software Package”, referringto implementations of the present invention, with a computer systemarchitecture. Implementations of the CallSense method and systemsconfigured for the CallSense method can use the “CallSense 1.0”,“CallSense 2.0” embodiment, or other variation of these embodiments thatwill be recognized by those of ordinary skill in the art. In thissystem, the MEMS hardware, shown as the Accelerometer hardware and Touchhardware, of a portable device are operating on an Android operatingsystem. The sensors, Accel and Touch hardware, are configured throughthe Linux device driver, which can be controlled by the service daemon.As shown, the CallSense Software Package can interact with the system atmultiple levels, including the device drivers (Accel and Touch) at theLinux Device Driver level, the Android HAL level via a CallSensealgorithm, and the Android Application level via a CallSense BackgroundAPK. Other frameworks and interfaces can be used in various embodimentsof a portable device implementing a MEMS proximity sensor system.

The Touch Panel and Accelerometer detect Close status detections havetheir own weaknesses. The Touch Panel may be impacted by temperature,humidity, and stress (deformation). The accelerometer only supports astandard gesture of “pick up” and “answer call” (running, lying down, inthe shaking transport and so on will have impacts). By adopting bothsensor hardware and jointing operating them in the methods of thepresent invention benefits from a two way advantage to improve the Closedetect accuracy. Other benefits can include saving the hardwareproximity sensor cost in handheld BOM list and improving the accuracy ofthe Accel only (CallSense 1.0) solution.

FIG. 10 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention. This flow diagram can represent a main flow diagram for amethod of operating a proximity sensor system. The method begins withinitializing the proximity sensor system, waiting for a “Phone CallStatus” to become active, enabling an Accelerometer Daemon process, andenabling a Touch Panel Proximity Detect process. The method theninvolves waiting for an application to ask for the proximity status,getting a Accelerometer Daemon Proximity Status, and getting a TouchPanel Proximity Status.

Then, a first query, a “Check Phone Call Status is Active?” process, isencountered. If the phone call status is not active, then the methoddisables the Accelerometer Daemon and returns through a first loop backto the step of “Waiting for Phone Call status is Active”. If the phonecall status is active, then a second query, “Is Accelerometer DaemonProximity Status Close?” or “Is Touch Panel Proximity Status Close?”, isencountered. If the either proximity status is close, then the methodreturns a “Close” value, and if neither status is close, then an “Away”value is returned. Following this value return, the method returnsthrough a second loop back to the method step of waiting for anapplication to request the proximity status.

In an embodiment, the present invention can include a method ofoperating a proximity sensor system. The method can include initializingthe proximity sensor system, waiting for an active status, enabling afirst sensor service daemon, and enabling a second sensor servicedaemon. The proximity sensor system can include a first and secondsensor device, which can be an accelerometer and a touch panel,respectively. The active status can be associated with a phone callstatus. The first sensor service daemon and the second sensor servicedaemon can be associated with the first and second sensors,respectively. The method can then execute three different process loops:

The first loop process can include receiving a status request from anapplication, retrieving a first sensor status from the first sensorservice daemon, retrieving a second sensor status from the second sensorservice daemon, receiving an active status, determining a close statusfrom the first sensor status or from the second sensor status, andreturning a close value.

The second loop process can include: receiving a status request from anapplication, retrieving a first sensor status from the first sensorservice daemon, retrieving a second sensor status from the second sensorservice daemon, receiving an active status, determining an away statusfrom the first sensor status and from the second sensor status, andreturning an away value.

The third loop process can include: receiving a status request from anapplication, retrieving a first sensor status from the first sensorservice daemon, retrieving a second sensor status from the second sensorservice daemon, receiving an inactive status, disabling the first sensorservice daemon, waiting for the active status, enabling the first sensorservice daemon, and enabling the second sensor service daemon.

FIG. 11 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention. This flow diagram can represent a flow diagram for anaccelerometer tracking detection portion of a method of operating aproximity sensor system. The method begins with initializing theproximity sensor system, initializing a buffer, setting a gestCountvalue to zero, and setting a proximity status as “Away”. The method caninclude recording an accelerometer data and presenting a query regardingif a data record is more than enough, i.e. If(gestCount>=6). If thisquery is not satisfied, then the gestCount is incremented and the methodloops back to the recording of accelerometer data.

If the query is satisfied, then another query regarding the movementdetection is presented. This query can involve determining if a standarddeviation of any of the axis measurements (i.e. stdevX, stdevY, orstdevZ) exceeds a predetermined value, such as 100. If this query is notsatisfied, then the buffer is cleared and the gestCount is set to zero.If the query is satisfied, then the method can proceed to increment thegestCount and record accelerometer data.

Another query regarding if the data record is more than enough, i.e.If(gestCount>=15), can be presented. If this query is not satisfied,then the method loops pack to incrementing the gestCount and recordingAccdata. If the query is satisfied, then another query regarding themovement detection is presented. This query can include detecting astable condition from gestCount-9 to gestCount and determining whetherthe standard deviation of measurements on all axis are less than anotherpredetermined value (i.e. stdev<70). If this query is not satisfied,then the method loops back to incrementing the gestCount and recordingAccdata.

Another query can then be presented; this query checks whether a pickupgesture analysis registers as true. If the query is not satisfied, themethod loops back to clearing the buffer, setting the gestCount to zero,and starting at the beginning recording of Accdata. If the query issatisfied, the method proceeds to another query about whether a checkposition answer position is true. If this query is not satisfied, themethod also loops back to clearing the buffer, setting the gestCount tozero, and starting at the beginning recording of Accdata. If the queryis satisfied, then the method proceeds to a new status.

In the new status, a close status is set, a P_status value is set toone, the buffer is cleared, and the gestCount is set to zero. The methodproceeds to recording Accdata and checking if gestCount is greater thanor equal to yet another value, i.e. 10. If this comparison is notsatisfied, then the gestCount is incremented and the method loops backto the recording of Accdata under this new status. If the comparison issatisfied, then the method proceeds to the check position answerposition. If this query returns false, then an away status is set,P_status is set to zero, and the method loops back to clearing thebuffer, setting the gestCount to zero, and recording the Accdata fromthe top of the flow diagram. If this query returns true, then anothermovement detect query is presented. If any of the standard deviationsmeasured of any axis exceeds another value, i.e. stdev>200, then theaway status is set, P_status is set to 0, and the method loops back toclearing the buffer, setting the gestCount to zero, and recording theAccdata from the top of the flow diagram. If the query returns false,then the method returns to setting a close status, setting P_status toone, clearing the buffer, setting the gestCount to zero, and recordingAccdata in the lower process loop.

In an embodiment, the present invention can include a method ofoperating a proximity sensor system. The method can include initializingthe proximity sensor system, initializing a buffer, setting a countvalue to zero, and setting a proximity status as “Away”. The proximitysensor system can include a first and second sensor device, which can bean accelerometer and a touch panel, respectively. The method can includeexecuting a record sensor data process that detects gestures and recordsa standard deviation of movement along an X, Y, and Z axis. This processengages in a first process loop that increments the count, which can bea gesture count, until the count exceeds a first count threshold and thestandard deviations on any axis exceeds a first deviation threshold.

The method includes following the previously discussed process loop witha second process loop including incrementing the count until the countvalue exceeds a second count threshold and a stable status is detectedvia the standard deviation on all axes is less than a second deviationvalue. The method follows to determine that a gesture check is true anda position check is true.

The method includes following the secondly discussed process loop with athird process loop including setting a detection status to close,clearing the buffer, and setting the count to zero. The record sensordata process is executed again and the count is incremented until itexceeds a third threshold. The executed record sensor data processcontinues until a position check is determined to be true and thestandard deviation measured on any axis is greater than a thirddeviation threshold. After which the detection status is set to away.The method can clears the buffer and sets the count to zero and themethod resumes from the top of the process flow.

FIG. 12 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention. This flow diagram can represent a flow diagram for a gesturecheck for a method of operating a proximity sensor system. The methodincludes a series of queries involving conditions such as a standarddeviation value being greater than a first gesture deviation value, i.e.250, on one or more of the X, Y, and Z axes. The queries can includechecking whether the difference between a maximum data and a minimumdata is less than a data difference threshold, i.e. 2.5 g. The queriescan also include checking whether a standard deviation measured on anyaxis divided by a gesture count is less than a deviation gesture ratio,i.e. 30. A start and stop position check can be included wherein arecorded data on one or more of the axes is checked to be less than astart stop threshold, i.e. −500 mg. A full movement cycle check can beincluded wherein the number of cycles on any of the measured axes ischecked to be greater than a full cycle threshold, i.e. 2. Also, a halfcycle check can be included wherein the number of cycles on any of themeasured axes is checked to be greater than a half cycle threshold,i.e. 1. Furthermore, an energy proportion check can be included whereinit is determined whether a ratio of a measured standard deviation on afirst axis to a measured standard deviation on a second axis exceeds afirst energy proportion ratio, i.e. 66, or whether the inverted ratio(2^(nd) stdev/1^(st) stdev) exceeds a second energy proportion ratio,i.e. 166.

In a specific embodiment, these queries can be ordered in a specificfashion. In the case of the full movement cycle check, a false returnleads to the method jumping to the energy proportion check. A falsereturn on the half cycle check can lead to the energy proportion checkas well. Otherwise, each of the queries listed above can follow to thenext on a return true, with the true return of the energy proportioncheck resulting in a return of an overall true or yes value. All otherfalse returns on the other queries can result in the return of anoverall false or no value.

FIG. 13 illustrates a simplified flow diagram of a method for operatinga MEMS proximity sensor device according to an embodiment of the presentinvention. This flow diagram can represent a flow diagram for a positiondetect process for a method of operating a proximity sensor system. Themethod begins by checking whether a rotate tile angle is greater than afirst angle threshold and less than a second angle threshold, i.e. −145degrees and 145 degrees, respectively, as well as checking that theabsolute value of a measured data on one or more axes is less than afirst absolute value threshold, i.e. 600 mg. If the query returns false,then the position detect process returns false or no (N).

Following this query, the method can check whether the system is in aclose mode phase, i.e. position status is close. If the status is notclose, then the method checks if the absolute value of a measured dataon one or more axes is less than a second absolute value threshold, i.e.500 mg. If the status is close, another query is presented regardingwhether the rotate tilt angle is less greater than a third anglethreshold, i.e. −5 degrees, and less than a fourth angle threshold, i.e.5 degrees, and whether the rotate tilt angle is greater than a fifthangle threshold, i.e. 85 degrees, and less than a sixth angle threshold,i.e. 95 degrees, and whether an absolute value of a measured data on oneor more axes is greater than a third absolute value threshold, i.e. 300mg. If this query returns true, then the position detect process returnstrue or yes (Y). Otherwise, the process returns false or no (N).

In an embodiment, the present invention can include a method ofoperating a proximity sensor system. The methods and sub-methodsdescribed previously can be added together, interchanged, and reordereddepending on the specific application. The process flow describedpreviously merely includes examples, which can be expanded or contracteddepending on application. Variations, modifications, and alternativeswill be recognized by those of ordinary skill in the art.

It is also understood that the examples and embodiments described hereinare for illustrative purposes only and that various modifications orchanges in light thereof will be suggested to persons skilled in the artand are to be included within the spirit and purview of this applicationand scope of the appended claims.

What is claimed is:
 1. A method for proximity detection implemented on aportable device programmed to perform the method comprising:determining, with a physical sensor of the portable device, an initialperturbation data including previous state data and current state data;determining, with the physical sensor of the portable device, a trackingpoint data including one or more track data; determining, with thephysical sensor of the portable device, a stable position data using thetracking point data; and determining, with a processor of the portabledevice, an action to perform based on the initial perturbation data, thetracking point data, and the stable position data.
 2. The method ofclaim 1 further comprising comparing, by the processor of the portabledevice, the difference between the previous state data and the currentstate data to one or more first threshold values.
 3. The method of claim2 wherein each of the one or more first threshold values comprises aratio between a sensitivity parameter and a shake detection parameter.4. The method of claim 3 wherein initial perturbation data includesX-axis perturbation data and Z-axis perturbation data, and wherein theone or more first threshold values includes: an X-axis first thresholdvalue comprising a ratio between the sensitivity parameter and an X-axisshake detection parameter, and a Z-axis first threshold value comprisinga ratio between the sensitivity parameter and a Z-axis shake detectionparameter.
 5. The method of claim 1 wherein the determining of thetracking point data includes sampling a two or more consecutive pointsin (x, y, z) axis data.
 6. The method of claim 5 further comprisingcomparing, by the processor of the portable device, the differencebetween the first point in (x, y, z) axis data and the last point in (x,y, z) axis data to one or more second threshold values.
 7. The method ofclaim 6 wherein each of the one or more second threshold valuescomprises a ratio between a sensitivity parameter and a movementparameter.
 8. The method of claim 7 wherein the one or more secondthreshold values includes: an X-axis second threshold value comprising aratio between the sensitivity parameter and an X-axis movementparameter, and a Z-axis second threshold value comprising a ratiobetween the sensitivity parameter and a Z-axis movement parameter. 9.The method of claim 5 further comprising comparing, by the processor ofthe portable device, the last point in (x, y, z) data from the one ormore track data to one or more third threshold values and one or morefourth threshold values.
 10. The method of claim 9 wherein each the oneor more third threshold values comprises a ratio between the sensitivityparameter and a position parameter.
 11. The method of claim 10 whereinthe one or more third threshold values includes: an X-axis thirdthreshold value comprising a ratio between the sensitivity parameter andan X-axis position parameter, a Y-axis third threshold value comprisinga ratio between the sensitivity parameter and a Y-axis positionparameter, and a Z-axis third threshold value comprising a ratio betweenthe sum of the sensitivity parameter and a Z-offset value and a Z-axisnegative position parameter.
 12. The method of claim 9 wherein each ofthe one or more fourth threshold values comprises the sum of thesensitivity parameter and an offset value.
 13. The method of claim 12wherein the one or more fourth threshold values includes: an X-axisfourth threshold value comprising the sum of the sensitivity parameterand an X-offset value, a Y-axis fourth threshold value comprising thesum of the sensitivity parameter and a Y-offset value, and a Z-axisfourth threshold value comprising the ratio between the sum of thesensitivity parameter and a Z-offset value and a Z-axis positiveposition parameter.
 14. The method of claim 1 wherein the determining ofthe action to perform includes: determining whether the initialperturbation data exceeds one or more first thresholds, determiningwhether the tracking point data exceeds one or more second thresholds,and determining whether the stable position data exceeds one or morethird and fourth thresholds.
 15. The method of claim 1 wherein thephysical sensor comprises an accelerometer, a gyro sensor, a magneticfield sensor, or a MEMS physical sensor.
 16. A portable device fordetermining proximity of a user comprising: a physical sensor configuredto determine an initial perturbation data including previous state dataand current state data, a tracking point data including one or moretrack data, and a stable position data using the tracking point data; aprocessor coupled to the physical sensor, wherein the processor isprogrammed to determine an action to perform based on the initialperturbation data, the tracking point data, and the stable positiondata.
 17. The device of claim 16 wherein the processor is programmed tocompare the difference between the previous state data and the currentstate data to one or more first threshold values.
 18. The device ofclaim 17 wherein each of the one or more first threshold valuescomprises a ratio between a sensitivity parameter and a shake detectionparameter.
 19. The device of claim 18 wherein initial perturbation dataincludes X-axis perturbation data and Z-axis perturbation data, andwherein the one or more first threshold values includes: an X-axis firstthreshold value comprising a ratio between the sensitivity parameter andan X-axis shake detection parameter, and a Z-axis first threshold valuecomprising a ratio between the sensitivity parameter and a Z-axis shakedetection parameter.
 20. The device of claim 16 wherein the determiningof the tracking point data includes sampling two or more consecutivepoints in (x, y, z) axis data.
 21. The device of claim 20 wherein theprocessor is programmed to compare the difference between the firstpoint in (x, y, z) axis data and the last point in (x, y, z) axis datato one or more second threshold values.
 22. The device of claim 21wherein each of the one or more second threshold values comprises aratio between a sensitivity parameter and a movement parameter.
 23. Thedevice of claim 22 wherein the one or more second threshold valuesincludes: an X-axis second threshold value comprising a ratio betweenthe sensitivity parameter and an X-axis movement parameter, and a Z-axissecond threshold value comprising a ratio between the sensitivityparameter and a Z-axis movement parameter.
 24. The device of claim 20wherein the processor is programmed to compare the last point in (x, y,z) data from the one or more track data to one or more third thresholdvalues and one or more fourth threshold values.
 25. The device of claim24 wherein each the one or more third threshold values comprises a ratiobetween the sensitivity parameter and a position parameter.
 26. Thedevice of claim 25 wherein the one or more third threshold valuesincludes: an X-axis third threshold value comprising a ratio between thesensitivity parameter and an X-axis position parameter, a Y-axis thirdthreshold value comprising a ratio between the sensitivity parameter anda Y-axis position parameter, and a Z-axis third threshold valuecomprising a ratio between the sum of the sensitivity parameter and aZ-offset value and a Z-axis negative position parameter.
 27. The deviceof claim 24 wherein each of the one or more fourth threshold valuescomprises the sum of the sensitivity parameter and an offset value. 28.The device of claim 27 wherein the one or more fourth threshold valuesincludes: an X-axis fourth threshold value comprising the sum of thesensitivity parameter and an X-offset value, a Y-axis fourth thresholdvalue comprising the sum of the sensitivity parameter and a Y-offsetvalue, and a Z-axis fourth threshold value comprising the ratio betweenthe sum of the sensitivity parameter and a Z-offset value and a Z-axispositive position parameter.
 29. The device of claim 16 wherein thedetermining of the action to perform includes: determining whether theinitial perturbation data exceeds one or more first thresholds,determining whether the tracking point data exceeds one or more secondthresholds, and determining whether the stable position data exceeds oneor more third and fourth thresholds.
 30. The device of claim 16 whereinthe physical sensor comprises an accelerometer, a gyro sensor, amagnetic field sensor, or a MEMS physical sensor.